package cn.demoncat.util.web.config;

import org.springframework.boot.actuate.endpoint.web.WebEndpointResponse;
import org.springframework.boot.actuate.health.HttpCodeStatusMapper;
import org.springframework.boot.actuate.health.SimpleHttpCodeStatusMapper;
import org.springframework.boot.actuate.health.Status;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;
import java.util.Map;

/**
 * 服务监听（Actuator）配置
 *
 * @author 延晓磊
 *
 * @since 2017年7月21日
 */
@Configuration
public class ActuatorConfig {

	/**
	 * 自定义 /actuator/health的HttpStatus
	 * 
	 * @author 延晓磊
	 *
	 * @since 2018年7月5日
	 */
	@Bean
	public HttpCodeStatusMapper httpCodeStatusMapper() {
		// 状态映射
		Map<String, Integer> map = new HashMap<>();
		map.put(Status.UP.getCode(), WebEndpointResponse.STATUS_OK);
		map.put(Status.UNKNOWN.getCode(), WebEndpointResponse.STATUS_OK);
		map.put(Status.DOWN.getCode(), WebEndpointResponse.STATUS_OK);
		map.put(Status.OUT_OF_SERVICE.getCode(), WebEndpointResponse.STATUS_OK);
		return new SimpleHttpCodeStatusMapper(map);
	}

}
